<template>
  <div id="home_index_id" class="home_index" @click="handleOverallClick">
    <HomeHeader/>
    <HomeContainer/>
    <div class="home_calender" v-show="$store.state.calendarShow">
      <HomeCalendar />
    </div>
    <HomeFooter/>
  </div>
</template>

<script>
import HomeHeader from './HomeHeader'
import HomeContainer from './HomeContainer'
import HomeFooter from './HomeFooter'
import {mapState} from 'vuex'
import API from '@/api/api-chat-list.js'
import {setCustomBubble, setQuickNavigation} from '@/utils/setChatStoreData.js'
import HomeCalendar from './homeCalendar/Index.vue'
import inobounce from 'inobounce'

export default {
  name: 'HomeIndex',
  components: {
    HomeHeader,
    HomeContainer,
    HomeFooter,
    HomeCalendar
  },
  created() {
    // iphone 手机禁止滑动回弹效果
    if (navigator.userAgent.includes('iPhone')) {
      inobounce.enable();
    }
  },
  data() {
    return {
      categoryListData: null,   //存储题库数据
      paramsZX: {
        "type": 'categoryList',
        "data": [
          {
            label: "党章党规",
            data: [
              {category: "ZX", level1Title: "党章党规演示1"},
            ]
          }
        ]
      },
      paramsZS: {
        "type": 'categoryList',
        "data": [
          {
            label: "交流入口",
            data: [
              {category: "ZS", level1Title: "智慧党建系统交流园地"}
            ]
          }
        ]
      }
    }
  },
  async mounted() {
    // 获取机器人信息
    const robotInfo = await API.getRobotInfo();
    this.$store.commit('setRobotInfo', robotInfo.data);

    // 获取用户信息
    const userInfo = await API.getUserInfo();
    this.$store.commit('setUserInfo', userInfo.data);

    // 获取题库类型
    const dataCategory = await API.getDataCategory();
    this.$store.commit('setCategoryLists', dataCategory);
    const categoryList = dataCategory.data.map(item => item.key);
    this.$store.commit('setCategoryList', categoryList);

    this.categoryListData = dataCategory.data;

    this.initGreetings();
    await this.initCategoryPlateBubble();


    // 获取zx导航栏数据
    await setQuickNavigation(this,"");

    // 获取用户信息
    const workSubTasks = await API.findWorkSubTasksByUserId();
    this.$store.commit('setWorkSubTasks', workSubTasks.data);
  },
  computed: {
    ...mapState(['userInfo', 'robotInfo', 'questionsAnswersData', 'categoryList'])
  },
  methods: {
    // 首页点击事件
    handleOverallClick(event) {
      // 如果点击的不是输入框，取消输入框的聚焦事件
      if (event.target.nodeName !== 'INPUT') {
        const inpDom = document.getElementById('inp');
        inpDom && (inpDom.onfocus = null);
      }
      // 取消日历的展示
      this.$store.commit('setCalendarShow', false);
    },
    // 初始化问候语
    initGreetings() {
      // 问候语列表
      const paramList = [
        {
          'rhPlate': 'ZC',
          'param': {
            "type": 'text',
            "data": "在这里，您可以点击“个人信息”和“所在支部”来查询您的个人信息和所属党组织信息，也可以输入其他党员姓名（或员工编号、手机号码）和党组织名称，查询相关信息。查询结果中嵌入了亲情网格、岗区队等业务平台的入口链接，点击即可一键直达。"
          },
        },
        {
          'rhPlate': 'ZX',
          'param': {
            "type": 'text',
            "data": "在这里，我们将基层党组织和党员关心的党章党规、文件制度、学习资料等进行了梳理，您可以用点击“知识树”或关键词搜索方式，进行咨询查找。例如：您可以输入“党员发展”来咨询查找党员发展的相关知识和实操问答。"
          },
        },
        {
          'rhPlate': 'ZB',
          'param': {
            "type": 'text',
            "data": "在这里，我们为广大党务工作人员提供丰富的工具库，用机器代替人工，实现报表收集、党费稽核、记录检查等日常党建工作的智能办理，推动基层减负。您可以根据实际工作，灵活选择对应的功能模块。"
          },
        },
        {
          'rhPlate': 'ZS',
          'param': {
            "type": 'text',
            "data": "在这里，我们聚焦党支部建设标准化和重点工作，通过政策梳理、实操问答、案例强化、直播互动四个模块，定期围绕主题梳理政策规范，答疑解析当期重点工作，组织‘三点一刻’线上互动直播，为您提供线上线下咨询窗口。"
          },
        },
      ];
      paramList.forEach(item => {
        setCustomBubble(this, item.param, item.rhPlate, 0);
      });
    },
    // 初始化题库板块气泡
    async initCategoryPlateBubble() {
      this.$store.commit('setCategoryListData', this.params);
      // 向父组件传递信息，数据请求完成，可以关闭toast提示了，参数随便
      this.$emit('handleCloseToast', 1);
    }
  }
}
</script>

<style scoped>
@import url('~@/assets/css/home/homeIndex.css');
</style>
